home *** CD-ROM | disk | FTP | other *** search
Wrap
package netscape.ldap; import java.util.StringTokenizer; import java.util.Vector; public class LDAPMatchingRuleSchema extends LDAPAttributeSchema { private String[] attributes; public LDAPMatchingRuleSchema(String var1, String var2, String var3, String[] var4, int var5) { super(var1, var2, var3, var5, true); super.attrName = "matchingrules"; this.attributes = new String[var4.length]; for(int var6 = 0; var6 < var4.length; ++var6) { this.attributes[var6] = new String(var4[var6]); } } public LDAPMatchingRuleSchema(String var1, String var2) { super.attrName = "matchingrules"; super.oid = this.processRule(var1); String var3 = this.processRule(var2); if (var3 != null && super.oid != null && !var3.equals(super.oid)) { System.err.println("Rule oid " + super.oid + " differs from use oid " + var3); } if (super.oid == null) { super.oid = var3; } } private String processRule(String var1) { if (var1 == null) { return null; } else { var1.trim(); int var2 = var1.length(); var1 = var1.substring(2, var2 - 1); var2 = var1.length(); int var3 = var1.indexOf(32); String var4 = var1.substring(0, var3); char[] var5 = new char[var2]; var1 = var1.substring(var3 + 1, var2); var2 = var1.length(); var1.getChars(0, var2, var5, 0); var3 = 0; var2 = var5.length; while(var3 < var2) { String var6; for(var6 = ""; var5[var3] == ' '; ++var3) { } int var8; for(var8 = var3 + 1; var8 < var2 && var5[var8] != ' '; ++var8) { } if (var3 < var2 && var8 < var2) { var6 = new String(var5, var3, var8 - var3); var3 = var8; } else { var3 = var2; } while(var3 < var2 && var5[var3] != '\'' && var5[var3] != '(') { ++var3; } for(var8 = var3 + 1; var8 < var2 && var5[var8] != '\'' && var5[var8] != ')'; ++var8) { } if (var3 < var8 && var8 < var2) { String var7 = new String(var5, var3 + 1, var8 - var3 - 1); var3 = var8 + 1; if (var6.equalsIgnoreCase("NAME")) { super.name = var7; } else if (var6.equalsIgnoreCase("DESC")) { super.description = var7; } else if (var6.equalsIgnoreCase("SYNTAX")) { super.syntax = ((LDAPAttributeSchema)this).syntaxCheck(var7); } else if (var6.equalsIgnoreCase("APPLIES")) { Vector var9 = new Vector(); StringTokenizer var10 = new StringTokenizer(var7, " "); while(var10.hasMoreTokens()) { String var11 = var10.nextToken(); if (!var11.equals("$")) { var9.addElement(var11); } } this.attributes = new String[var9.size()]; var9.copyInto(this.attributes); var9.removeAllElements(); Object var19 = null; } } } return var4; } } public String[] getAttributes() { return this.attributes; } public String getValue() { String var1 = "( " + super.oid + " NAME '" + super.name + "' DESC '" + super.description + "' SYNTAX '"; var1 = var1 + ((LDAPAttributeSchema)this).internalSyntaxToString(); var1 = var1 + "' )"; return var1; } public String getUseValue() { String var1 = "( " + super.oid; var1 = var1 + " APPLIES ( "; for(int var2 = 0; var2 < this.attributes.length; ++var2) { if (var2 > 0) { var1 = var1 + " $ "; } var1 = var1 + this.attributes[var2]; } var1 = var1 + ") )"; return var1; } protected void update(LDAPConnection var1, int var2, String var3) throws LDAPException { LDAPAttribute[] var4 = new LDAPAttribute[]{new LDAPAttribute("matchingRules", this.getValue()), new LDAPAttribute("matchingRuleUse", this.getUseValue())}; ((LDAPSchemaElement)this).update(var1, var2, var4); } public String toString() { String var1 = "Name: " + super.name + "; OID: " + super.oid + "; Type: "; var1 = var1 + ((LDAPAttributeSchema)this).syntaxToString(); var1 = var1 + "; Description: " + super.description; if (this.attributes != null) { var1 = var1 + "; Applies to: "; for(int var2 = 0; var2 < this.attributes.length; ++var2) { if (var2 > 0) { var1 = var1 + ", "; } var1 = var1 + this.attributes[var2]; } } return var1; } }